home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / Retrace.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  2.7 KB  |  132 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Retrace.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __RETRACE__
  13. #define __RETRACE__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __OSUTILS__
  23. #include <OSUtils.h>
  24. #endif
  25.  
  26. typedef struct VBLTask VBLTask, *VBLTaskPtr;
  27.  
  28.  
  29. /*
  30.     VBLProcs cannot be written in or called from a high-level language without 
  31.     the help of mixed mode or assembly glue because they use the following 
  32.     parameter-passing convention:
  33.  
  34.     typedef pascal void (*VBLProcPtr)(VBLTaskPtr vblTaskPtr);
  35.  
  36.         In:
  37.             =>     vblTaskPtr                A0.L
  38.         Out:
  39.             none
  40. */
  41.  
  42. enum  {
  43.     uppVBLProcInfo                = kRegisterBased|REGISTER_ROUTINE_PARAMETER(1,kRegisterA0,kFourByteCode)
  44. };
  45.  
  46. #if USESROUTINEDESCRIPTORS
  47. typedef pascal void (*VBLProcPtr)(VBLTaskPtr vblTaskPtr);
  48.  
  49. typedef UniversalProcPtr VBLUPP;
  50.  
  51. #define CallVBLProc(userRoutine, vblTaskPtr)  \
  52.     CallUniversalProc((UniversalProcPtr)(userRoutine), uppVBLProcInfo, (vblTaskPtr))
  53.  
  54. #define NewVBLProc(userRoutine)  \
  55.     (VBLUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppVBLProcInfo, GetCurrentISA())
  56.  
  57. #else
  58. typedef ProcPtr VBLUPP;
  59.  
  60. #define NewVBLProc(userRoutine)  \
  61.     (VBLUPP)(userRoutine)
  62.  
  63. #endif
  64.  
  65. #if defined(powerc) || defined (__powerc)
  66. #pragma options align=mac68k
  67. #endif
  68. struct VBLTask {
  69.     QElemPtr                    qLink;
  70.     short                        qType;
  71.     VBLUPP                        vblAddr;
  72.     short                        vblCount;
  73.     short                        vblPhase;
  74. };
  75. #if defined(powerc) || defined(__powerc)
  76. #pragma options align=reset
  77. #endif
  78.  
  79. #ifdef __cplusplus
  80. extern "C" {
  81. #endif
  82.  
  83. #if USESCODEFRAGMENTS
  84. extern pascal QHdrPtr GetVBLQHdr(void);
  85. #else
  86. #define GetVBLQHdr() ((QHdrPtr) 0x0160)
  87.  
  88. #endif
  89.  
  90.  
  91. #if USES68KINLINES
  92. #pragma parameter __D0 SlotVInstall(__A0, __D0)
  93. #endif
  94. extern pascal OSErr SlotVInstall(QElemPtr vblBlockPtr, short theSlot)
  95.  ONEWORDINLINE(0xA06F);
  96.  
  97. #if USES68KINLINES
  98. #pragma parameter __D0 SlotVRemove(__A0, __D0)
  99. #endif
  100. extern pascal OSErr SlotVRemove(QElemPtr vblBlockPtr, short theSlot)
  101.  ONEWORDINLINE(0xA070);
  102.  
  103. #if USES68KINLINES
  104. #pragma parameter __D0 AttachVBL(__D0)
  105. #endif
  106. extern pascal OSErr AttachVBL(short theSlot)
  107.  ONEWORDINLINE(0xA071);
  108.  
  109. #if USES68KINLINES
  110. #pragma parameter __D0 DoVBLTask(__D0)
  111. #endif
  112. extern pascal OSErr DoVBLTask(short theSlot)
  113.  ONEWORDINLINE(0xA072);
  114.  
  115. #if USES68KINLINES
  116. #pragma parameter __D0 VInstall(__A0)
  117. #endif
  118. extern pascal OSErr VInstall(QElemPtr vblTaskPtr)
  119.  ONEWORDINLINE(0xA033);
  120.  
  121. #if USES68KINLINES
  122. #pragma parameter __D0 VRemove(__A0)
  123. #endif
  124. extern pascal OSErr VRemove(QElemPtr vblTaskPtr)
  125.  ONEWORDINLINE(0xA034);
  126. #ifdef __cplusplus
  127. }
  128. #endif
  129.  
  130. #endif
  131.  
  132.